TOP

Google Tradutor em LibreOffice Calc

YLC Utilities logo

Descrição

A funcionalidade padrão do programa LibreOffice Calc não inclui funções para tradução de texto para outros idiomas. No entanto, qualquer usuário pode criar tal função de forma independente.

Neste artigo, veremos a função personalizada GoogleTranslate_YouLibreCalc(), que permitirá traduzir texto diretamente em uma célula de qualquer planilha.

A função usa o site para traduzir o texto "Google Tradutor" e pode ser usado em qualquer fórmula de forma independente ou em conjunto com outras funções padrão.



StarBASIC código para função Google Translate

Adicionar função Google Translate , abra o menu Tools - Macros - Edit Macros... , selecione Módulo1 e copie o seguinte texto no módulo:

Option VBASupport 1

Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
  ' moonexcel.com.ua 
  Dim FCalc      As Object
  Dim WebsiteURL As String  
  Dim XMLHTTP    As Object
  Dim oHTML      As Object
  Dim HTMLDoc    As HTMLDocument
  Dim ObjClass   As Object
    
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess") 
  TextToTranslate =  FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
  
  SrcLang = LCase(SrcLang)
  TrgLang = LCase(TrgLang)
  
  IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
  IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
  
  IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
  IF TrgLang = "zh-tw" Then TrgLang = "zh-TW" 
    
  WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
    
  ' Executamos a chamada da API para o servidor web usando a solicitação AJAX 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Criamos um documento HTML usando o texto de resposta da solicitação AJAX 
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  ' Convertemos texto HTML em um modelo de objeto usando a biblioteca de elementos da web Microsoft Biblioteca HTML Object 
  Set HTMLDoc = oHTML  
  
  Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
  If Not ObjClass Is Nothing Then
    GoogleTranslate_YouLibreCalc = ObjClass.innerText    
  End If 
 
  ' Nós liberamos a memória 
  Set ObjClass = Nothing
  Set oHTML    = Nothing
  Set XMLHTTP  = Nothing  
End Function

A seguir, feche Macro Editor e volte para a planilha LibreOffice Calc , selecione qualquer célula e use nosso novo recurso GoogleTranslate_YouLibreCalc() .

Usando a extensão

Você também pode usar a função GOOGLETRANSLATE() instalando a extensão gratuita YouLibreCalc.oxt ou sua versão completa YLC_Utilities.oxt .

Depois disso, esta função estará disponível em todos os arquivos que serão abertos em LibreOffice Calc.